'''
Created on 24-08-2013

@author: Camilo
'''
from PyQt4 import QtGui, QtCore
from Interfaz import Ui_MainWindow
import sys
from Crea_graficas import  MplCanvas
from Crea_graficas3D import  MplCanvas3D
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar

import Archivos.LeerArchivo 
import Archivos.LeerPeriodo

class Principal(QtGui.QMainWindow):
    #constructor de la clase
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        
        ##instanciar Interfaz
        self.ventana=Ui_MainWindow()
        self.ventana.setupUi(self)
        self.rutaArchivo="";
        
        #valores Grafica
        self.axesX=[]
        self.axesY=[]
        self.axesZ=[]
               
        
        #conexion con slots
        #*componente recibe*.connect(*componente interfaz que lo genere*, *senyal esperada* , *slot o accion a realizar*)
        self.ventana.QLay_ejeX.connect(self.ventana.btnGraficarX, QtCore.SIGNAL('clicked()'), self.setGraphComponentX) 
        self.ventana.QLay_ejeY.connect(self.ventana.btnGraficarY, QtCore.SIGNAL('clicked()'), self.setGraphComponentY)
        self.ventana.QLay_ejeZ.connect(self.ventana.btnGraficarZ, QtCore.SIGNAL('clicked()'), self.setGraphComponentZ)
        
        self.ventana.GLay_3D.connect(self.ventana.btnGrafica3D, QtCore.SIGNAL('clicked()'), self.setGraph3D)
        
        #Archivos
        self.connect(self.ventana.btnAbrirArchivo, QtCore.SIGNAL('clicked()'),self.openFile)
        self.connect(self.ventana.btnPeriodo, QtCore.SIGNAL('clicked()'),self.leerPeriodo)        
        
    #definicion de acciones a realizar;
    def setGraphComponentX(self):
            self.Canvas=MplCanvas(self.axesX)
            self.ventana.QLay_ejeX.addWidget(self.Canvas)
            self.NavigTool= NavigationToolbar(self.Canvas, self)
            self.ventana.QWidNavigationTool_ejex.addWidget(self.NavigTool)
            
            
    def setGraphComponentY(self):
            self.Canvas=MplCanvas(self.axesY)
            self.ventana.QLay_ejeY.addWidget(self.Canvas)
            self.NavigTool= NavigationToolbar(self.Canvas, self)
            self.ventana.QWidNavigationTool_ejey.addWidget(self.NavigTool)
    
    def setGraphComponentZ(self):
            self.Canvas=MplCanvas(self.axesZ)
            self.ventana.QLay_ejeZ.addWidget(self.Canvas)
            self.NavigTool= NavigationToolbar(self.Canvas, self)
            self.ventana.QWidNavigationTool_ejez.addWidget(self.NavigTool)   
             
    def setGraph3D(self):
            self.Canvas=MplCanvas3D(self.readingFile.ejex, self.readingFile.ejey, self.readingFile.ejez)
            self.ventana.GLay_3D.addWidget(self.Canvas)
             
    def leerPeriodo(self):
        QtGui.QMessageBox.information(self,'Periodo seleccionado', "magnetometro GILL, anio 2007", QtGui.QMessageBox.Ok);
        periodoLeido=Archivos.LeerPeriodo.leerArchivos();
        periodoLeido.abrirDirectorioArchivos();
        periodoLeido.calcPromedios(500);
        
        self.axesX=periodoLeido.promEjeX;
        self.axesY=periodoLeido.promEjeY;
        self.axesZ=periodoLeido.promEjeZ;
            
    def openFile(self):
        try:
            refArchivo=""
            refArchivo = QtGui.QFileDialog.getOpenFileName(self, "Abrir Archivo", "C:\Users\Camilo\Documents\CARISMA")
            self.rutaArchivo=str(refArchivo)
        except:
            print "No es posible accesar el archivo"
                   
        if refArchivo != None:
            QtGui.QMessageBox.information(self,'Archivo seleccionado',"Ubicacion: "+str(refArchivo),QtGui.QMessageBox.Ok);
            self.readingFile= Archivos.LeerArchivo.FileRead()
            self.readingFile.openFile(self.rutaArchivo, self.ventana)
            self.readingFile.readFile()
            self.readingFile.closeArchivo();
            self.axesX=self.readingFile.ejex;
            self.axesY=self.readingFile.ejey;
            self.axesZ=self.readingFile.ejez;
            
            
       
        
        
## Metodo main principal
app=QtGui.QApplication(sys.argv)
framePrincipal=Principal()
framePrincipal.show()
sys.exit(app.exec_())
